{% load form_tags widget_tweaks %}

{% if form.non_field_errors %}
    <div class="alert alert-danger" role="alert">
        {% for error in form.non_field_errors %}
            <p {% if forloop.last %} class="mb-0" {% endif %}>{{ error }}</p>
        {% endfor %}
    </div>
{% endif %}

{% for field in form %}
    <div class="form-group">
        {{ field.label_tag }}
        {% render_field field class=field|input_class %}
        {% for error in field.errors %}
            <div class="invalid-feedback">
                {{ error }}
            </div>
        {% endfor %}
        {% if field.help_text %}
            <small class="form-text text-muted">
                {{ field.help_text|safe }}
            </small>
        {% endif %}
    </div>
{% endfor %}